package com.xingkeduo.business.user.controller;

import com.xingkeduo.business.transformation.json.JobseekerJTO;
import com.xingkeduo.business.transformation.json.JobseekerJobJTO;
import com.xingkeduo.business.transformation.json.JobseekerSocialJTO;
import com.xingkeduo.business.user.domain.ManageInfoDomain;
import com.xingkeduo.pojo.table.JobseekerJobTO;
import com.xingkeduo.pojo.table.JobseekerTO;
import com.xingkeduo.util.pojo.base.BaseController;
import com.xingkeduo.util.tool.ReturnUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

/**
 * 求职者
 *
 * @author 高杰
 * @time 2018年12月24日 下午5:40:05
 * @description
 */
//@CrossOrigin
@RestController
@RequestMapping("/jobseeker")
public class JobseekerController extends BaseController {
    private final Logger log = LoggerFactory.getLogger(this.getClass());

    @Autowired
    private ManageInfoDomain manageInfoDomain;


    /**
     * 拉取用户信息,存储授权表
     *
     * @param :
     * @return : java.lang.String
     * @author : gaozifeng
     * @date : 2019/4/19 15:43
     */
//    @PostMapping("/save")
//    public String saveJobseeker(@RequestBody SubscribeDTO dto) {
//        log.info("controllerDto---------------:"+dto.toString());
//        returnUtil = new ReturnUtil();
//        if ( null == dto.getMpId() && null == dto.getCode()) {
//            return returnUtil.getException("0", "数据不能为空");
//        }
//        try {
//            return returnUtil.getSuccess(JobseekerWechatJTO.toJson(manageInfoDomain.saveJobseeker(dto)));
//        } catch (Throwable t) {
//            return dealException(t, returnUtil);
//        }
//    }


    /**
     * 查询接口
     *
     * @param id
     * @return
     * @author 高杰
     * @time 2018年12月29日 上午11:52:26
     */
    @GetMapping(value = "/{id:.+}")
    public String doGet(@PathVariable String id) {
        returnUtil = new ReturnUtil();
        try {
            JobseekerTO jobseekerTable = manageInfoDomain
                    .getJobseekerWithDetail(JobseekerJTO.createQueryForPrimary(id));
            return returnUtil.getSuccess(JobseekerJTO.toJson(jobseekerTable));
        } catch (Throwable t) {
            return dealException(t, returnUtil);
        }
    }

    /**
     * 修改学员信息
     *
     * @param url:
     * @param body:
     * @return : java.lang.String
     * @author : gaozifeng
     * @date : 2019/3/11 20:23
     */
    @PutMapping(value = "/{url:.+}")
    public String doPut(@PathVariable String url, @RequestBody String body) {
        returnUtil = new ReturnUtil();
        try {
            JobseekerJobTO jobseekerJobTO = JobseekerJobJTO.createTableForModify(body)
                    .setId(JobseekerJTO.createQueryForPrimary(url).getId());
            manageInfoDomain.modifyJobseekerDetail(JobseekerSocialJTO.createTableForModify(body)
                    .setId(JobseekerJTO.createQueryForPrimary(url).getId()), jobseekerJobTO);
            return returnUtil.getSuccess();
        } catch (Throwable t) {
            return dealException(t, returnUtil);
        }
    }
}
